using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using GameStateManagement;

namespace GameFramework.Interfaces
{
    /// <summary>
    /// This Interface use for Button or Game Objects that need handle Input from user
    /// </summary>
    public interface ISelected
    {
        /// <summary>
        /// Show that is selected or not
        /// </summary>
        bool IsSelected
        {
            get;          
        }

        /// <summary>
        /// Fire this event when Selected occurr
        /// </summary>
        event EventHandler Selected;

        /// <summary>
        /// Handle in put to fire Selected event
        /// </summary>
        /// <param name="gameTime"></param>
        /// <param name="input"></param>
        void HandleInput(GameTime gameTime, InputState input);

        /// <summary>
        /// On selected state
        /// </summary>
        void OnSelected();        
    }
}
